package edu.gatech.oad.mule;

/**
 * This class represents a MULE.  The Player purchases MULE from the MULE 
 * Stable and can outfit the MULE at the Outfitter.  A MULE is used to harvest 
 * resources from a plot of land.  MULEs require energy each turn in order to 
 * run.
 *
 * @author Brendan McGarry, Dale Avery, D'Miria Collins, Natasha Parekh, Jaemin Park
 * @version %I%, %G%
 */
public class MULE extends Robot{

	private static final long serialVersionUID = -3065907377110616995L;

	private boolean isOutfitted = false;
	
	private char type;

	public static final char ENERGY = 'E';
	public static final char FOOD = 'F';
	public static final char SMITHORE = 'S';
	public static final char CRYSTITE = 'C';
	public static final char UNFITTED = 'U';

	/**
	 * This constructor configures a new MULE object
	 */
	public MULE(){
		type = UNFITTED;
	}//end constructor

	/**
	 * @return The type of mule
	 */
	public char getType(){
		return type;
	}//end method getType

	/**
	 * @return Whether or not the MULE is outfitted
	 */
	public boolean isOutfitted(){
		return isOutfitted;
	}//end method isOutfitted

	/**
	 * Changes if a MULE is outfitted
	 *
	 * @param isOutfitted Whether or not this mule is outfitted
	 */
	private void setOutfitted(boolean isOutfitted){
		this.isOutfitted = isOutfitted;
	}//end method setOutfitted

	/**
	 * Changes the type of mule
	 *
	 * @param type The type of mule (refer to constants in this class)
	 */
	public void outfit(char type){
		this.type = type;
		setOutfitted(true);
	}//end method setType

}//end class MULE

